<?php
    // 重要!!：设置json的编码，这样传给前端的json数据才能识别
    header("Content-Type: text/json; charset=utf-8");
    // 使用file_put_contents()和file_get_contents()函数，需要为everyone添加写和读权限，或使用 chmod 777 [file]。
    $lastTime = file_get_contents("lastTime.txt");    // 上次访问时间戳
    $currentTime = msectime();    // 当前访问时间戳（毫秒级），通过处理微妙函数来获得
    $requestTimes = file_get_contents("requestTimes.txt") + 1;    // 访问次数+1
    file_put_contents("requestTimes.txt", $requestTimes);
    file_put_contents("currentTime.txt", $currentTime);
    $str = $requestTimes.'           | '.$currentTime.' | '.$lastTime.PHP_EOL;
    if(($requestTimes-1)%100 != 0) {    // 可记录日志信息数量
        file_put_contents("log.txt", $str, FILE_APPEND);
    }else {
        $title = 'requestTimes | currentTime   | lastTime'.PHP_EOL.'-------------|---------------|---------------
';
        file_put_contents("log.txt", $title.$str);
    }
    // 二次访问之间差10分钟才访问和下载数据库服务器的数据到本地服务器，即url中的json数据
    if($currentTime-$lastTime > 600000) {
        // 每次获取数据，更新时间戳为获取数据前的时间戳
        file_put_contents("lastTime.txt", $currentTime);
        getUrlJson();
    }else {
        // 读取文件json数据并返回
        echo file_get_contents("yq.json");
    }
    
    //返回当前的毫秒时间戳
    function msectime() {
        list($msec, $sec) = explode(' ', microtime());
        return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
    }
    function getUrlJson() {
        $curl = curl_init();
            //设置抓取的url
            curl_setopt($curl, CURLOPT_URL, 'https://zaixianke.com/yq/all');
            //设置头文件的信息作为数据流输出
        //    curl_setopt($curl, CURLOPT_HEADER, 1);    // 不显示头文件，显示会报200
            //设置获取的信息以文件流的形式返回，而不是直接输出。
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            //执行命令
            $data = curl_exec($curl);
            //关闭URL请求
            curl_close($curl);
            //缓存json到文件
            file_put_contents("yq.json", $data);
            //返回数据
            echo $data;
            //显示获得的数据
//            echo var_dump($data);
            //传值给前端，json_encode()将数据转为json格式
//            echo json_encode($data);
    }
?>
